Change-Id: Ib92877e4afa45f73bb086c04946f5c1d0c99ed6f
* @cfg {boolean} [redirect] Page is a redirect
* @cfg {boolean} [disambiguation] Page is a disambiguation page
* @cfg {string} [query] Matching query string to highlight
* @cfg {boolean} [redirect] Page is a redirect
* @cfg {boolean} [disambiguation] Page is a disambiguation page
* @cfg {string} [query] Matching query string to highlight
+ * @cfg {string} [compare] String comparison function for query highlighting
*/
mw.widgets.TitleOptionWidget = function MwWidgetsTitleOptionWidget( config ) {
var icon;
*/
mw.widgets.TitleOptionWidget = function MwWidgetsTitleOptionWidget( config ) {
var icon;
// Highlight matching parts of link suggestion
if ( config.query ) {
// Highlight matching parts of link suggestion
if ( config.query ) {
- this.setHighlightedQuery( config.data, config.query );
+ this.setHighlightedQuery( config.data, config.query, config.compare );
}
this.$label.attr( 'title', config.data );
}
this.$label.attr( 'title', config.data );
this.validateTitle = config.validateTitle !== undefined ? config.validateTitle : true;
this.cache = config.cache;
this.api = config.api || new mw.Api();
this.validateTitle = config.validateTitle !== undefined ? config.validateTitle : true;
this.cache = config.cache;
this.api = config.api || new mw.Api();
+ // Supports: IE10, FF28, Chrome23
+ this.compare = window.Intl && Intl.Collator ?
+ new Intl.Collator( mw.config.get( 'wgContentLanguage' ), { sensitivity: 'base' } ).compare :
+ null;
// Initialization
this.$element.addClass( 'mw-widget-titleWidget' );
// Initialization
this.$element.addClass( 'mw-widget-titleWidget' );
missing: data.missing,
redirect: data.redirect,
disambiguation: data.disambiguation,
missing: data.missing,
redirect: data.redirect,
disambiguation: data.disambiguation,
- query: this.getQueryValue()
+ query: this.getQueryValue(),
+ compare: this.compare